The present invention relates generally to transmission of digital data. More particularly, the invention is a method and apparatus for error detection on such serial data transmission media as fiber optic links.
Communicating connections between various components of data processing equipment, e.g., the processor system itself and such peripherals as disk drives, are until recently usually effected by one or another form of electrically conductive media, i.e., metallic wires. However, this form of communication connection is not without several problems. The physical makeup of the medium will often encounter electrical impedances of one type or another that place a limit on communication speed. And, although data transmission speed can be overcome by various techniques, such as transmitting data in parallel, other problems arise. For example, parallel data transmissions tend to create and/or exacerbate electromagnetic radiation and cross-talk problems.
These and other reasons have led to the development of various fiber optic materials for use as a data communications medium. Heretofore, data transmissions using fiber optics were little used because early fiber optic material tended to be expensive and, therefore, economically non-competitive. However, recent advances in fiber optic materials have reduced the cost to the point that fiber optics data communication can now compete realistically with conductive medium. Fiber optic material does not cause the electromagnetic radiation and cross talk problems encountered by metallic wiring. Further, fiber optic data communication provides a better bandwidth (i.e., data can be communicated faster) allows for longer length of line with less signal attenuation, and reduces cable bulk over that of conductive medium.
However, irrespective of the particular communication medium needed, it is good practice to provide some form of detecting whether the received data transmitted was, in fact, transmitted correctly. i.e., error checking. Recognizing the well-known phenomena that if anything can go wrong it will, results in use of various types of error detecting codes and techniques. Most error detection techniques use some form of "redundancy," extra bits that form an error detection code (or error correction code) for transmission along with the informational data. The extra bit or bits can be used to detect errors that may have occurred in the informational bits. The extra bit(s) are used, when the transmitted data is received, to determine if the transmission corrupted the data. The simplistic form of error checking is parity, which adds to the end of a multibit data word a ONE or ZERO depending upon whether the number of ONEs of the data word is even or odd.
While the various error-checking techniques--including parity checking--provide a modicum of confidence that received data is error free, as opposed to no error checking at all, multiple errors, or adjacent bit errors, may miss detection. To overcome these particular problems, more elaborate error checking (or correction) techniques are used, such as CRC check-sum methods, or Fire code encoding. However, these techniques can (and usually do--to be effective) add a significant number of data bits to the transmitted information. The addition of extra bits to the transmitted information degrades the total bandwidth for information transmission.